﻿Imports DAL

Public Class frmParametre
    Dim context As New CarpeDiemDataContext()

    'Valeur par default lors de la création des paramètres
    Dim COULEURBORDUREACCOMPAGNEMENT As String = Color.Purple.ToArgb()
    Dim COULEURBORDUREACTIVITE As String = Color.Turquoise.ToArgb()
    Dim COULEURBORDURETACHE As String = Color.AntiqueWhite.ToArgb()
    Dim COULEURBORDUREQUART As String = Color.Yellow.ToArgb()
    Const CONFIRMATIONSUPPRESSIONAUTO = True
    Const DELAISUPPRESSION = 5
    Const SAUVEGARDEAPRESINACTIF = 7


    Private Sub frmParametre_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        If context.Parametre.Count() = 0 Then
            Dim nouveauParametre As New Parametre()
            nouveauParametre.CouleurBordureAccompagnement = COULEURBORDUREACCOMPAGNEMENT
            nouveauParametre.CouleurBordureActivite = COULEURBORDUREACTIVITE
            nouveauParametre.CouleurBordureTache = COULEURBORDURETACHE
            nouveauParametre.CouleurBordureQuart = COULEURBORDUREQUART
            nouveauParametre.ConfirmationSuppressionAuto = CONFIRMATIONSUPPRESSIONAUTO
            nouveauParametre.DelaiSuppression = DELAISUPPRESSION
            nouveauParametre.SauvegardeApresInactif = SAUVEGARDEAPRESINACTIF
            context.Parametre.InsertOnSubmit(nouveauParametre)
            context.SubmitChanges()
        ElseIf context.Parametre.Count() > 1 Then
            MsgBox("Un erreur est survenue lors du chargement des paramètres." & vbNewLine _
                   & "Contactez votre administrateur système")
            Me.Dispose()
        End If
        ChargeParametre()
    End Sub

    Private Sub btnFermer_Click(sender As System.Object, e As System.EventArgs) Handles btnRetour.Click
        Me.Dispose()
    End Sub

    Private Sub btnAnnuler_Click(sender As System.Object, e As System.EventArgs) Handles btnAnnuler.Click
        ChargeParametre()
    End Sub

    Private Sub btnEnregistrer_Click(sender As System.Object, e As System.EventArgs) Handles btnEnregistrer.Click
        EnregistrerParametre()
    End Sub

    Private Sub btnBordureTache_Click(sender As System.Object, e As System.EventArgs) Handles btnBordureTache.Click
        ChangerCouleur(sender)
    End Sub

    Private Sub btnBordureActivite_Click(sender As System.Object, e As System.EventArgs) Handles btnBordureActivite.Click
        ChangerCouleur(sender)
    End Sub

    Private Sub btnBordureAccompagnement_Click(sender As System.Object, e As System.EventArgs) Handles btnBordureAccompagnement.Click
        ChangerCouleur(sender)
    End Sub

    Private Sub btnBordureQuart_Click(sender As System.Object, e As System.EventArgs) Handles btnBordureQuart.Click
        ChangerCouleur(sender)
    End Sub

    Private Sub ChangerCouleur(sender As Button)
        ColorDialog1.ShowDialog()
        sender.BackColor = ColorDialog1.Color
    End Sub

    Private Sub ChargeParametre()
        Dim vParametre = From p In context.Parametre
                            Select p

        Dim parametre = vParametre.First()
        btnBordureAccompagnement.BackColor = Color.FromArgb(parametre.CouleurBordureAccompagnement)
        btnBordureActivite.BackColor = Color.FromArgb(parametre.CouleurBordureActivite)
        btnBordureTache.BackColor = Color.FromArgb(parametre.CouleurBordureTache)
        btnBordureQuart.BackColor = Color.FromArgb(parametre.CouleurBordureQuart)
        nudDelaiSuppressionAutomatique.Value = parametre.DelaiSuppression
        cbConfirmation.Checked = parametre.ConfirmationSuppressionAuto
        nudIntervaleSauvegarde.Value = parametre.SauvegardeApresInactif
    End Sub

    Private Sub EnregistrerParametre()
        Dim vParametre = From p In context.Parametre
                            Select p

        Dim parametre = vParametre.First()

        parametre.CouleurBordureAccompagnement = btnBordureAccompagnement.BackColor.ToArgb()
        parametre.CouleurBordureActivite = btnBordureActivite.BackColor.ToArgb()
        parametre.CouleurBordureTache = btnBordureTache.BackColor.ToArgb()
        parametre.CouleurBordureQuart = btnBordureQuart.BackColor.ToArgb()
        parametre.DelaiSuppression = nudDelaiSuppressionAutomatique.Value
        parametre.ConfirmationSuppressionAuto = cbConfirmation.Checked
        parametre.SauvegardeApresInactif = nudIntervaleSauvegarde.Value
        context.SubmitChanges()
    End Sub

End Class